#pragma once

#include "Color4.h"
#include "Vector3.h"

struct Vertex
{
public:
	Vertex();
	Vertex(const Vector3f& position, const Color4& color = Color4::White, const Vector3f& normal = Vector3f::UnitX, const Vector2f& uv0 = Vector2f::Zero, const Vector2f& uv1 = Vector2f::Zero);
	~Vertex();
public:
	Vector3f	Position;
	Color4		Color;
	Vector3f	Normal;
	Vector2f	UV0;
	Vector2f	UV1;
public:
	static const int	PositionOffset = 0;
	static const int	ColorOffset = sizeof(Vector3f);
	static const int	NormalOffset = ColorOffset + sizeof(Color4);
	static const int	UV0Offset = NormalOffset + sizeof(Vector3f);
	static const int	UV1Offset = UV0Offset + sizeof(Vector2f);
};

